Skip to content

ref(scheduler): Extract scheduler plugin package#429

Draft
dcramer wants to merge 4 commits into
mainfrom
ref/extract-scheduler-plugin
Draft

ref(scheduler): Extract scheduler plugin package#429
dcramer wants to merge 4 commits into
mainfrom
ref/extract-scheduler-plugin

Conversation

@dcramer
Copy link
Copy Markdown
Member

@dcramer dcramer commented May 28, 2026

Move scheduler behavior into a dedicated @sentry/junior-scheduler trusted plugin package. Apps now opt into scheduled tasks with schedulerPlugin(), while core keeps the generic heartbeat, dispatch, and plugin-state primitives.

Plugin Boundary

The scheduler package owns schedule tools, recurrence math, prompt framing, durable scheduler state, and heartbeat dispatch. @sentry/junior no longer registers scheduler hooks by default.

Trusted Plugin API

Expose plugin state locking, set-if-not-exists writes, and AgentPluginToolInputError so scheduler can preserve its idempotency and model-repairable validation behavior outside core.

Release And Docs

Add the scheduler package to workspace dependencies, release metadata, CI packaging, docs, tests, and eval harness wiring.

Move scheduler tools, state, prompt framing, and heartbeat hooks into a dedicated @sentry/junior-scheduler package. Core now exposes the trusted plugin state primitives the scheduler needs and apps opt in with schedulerPlugin().

Update docs, tests, eval harness wiring, and release metadata for the new package.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
junior-docs Ready Ready Preview, Comment May 28, 2026 5:25am

Request Review

Comment thread packages/junior-scheduler/src/schedule-tools.ts
Restore Slack conversation id normalization in the extracted scheduler tools and update tests for explicit scheduler registration.

Remove the scheduler-specific plugin-state key mapping from core so trusted plugin state remains a generic namespace primitive.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Comment thread packages/junior-scheduler/src/store.ts
Allow extracted trusted plugins to declare legacy state prefixes during migration. This keeps existing scheduler records visible after the scheduler moves behind plugin state without adding scheduler-specific storage branches to core.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bb25b16. Configure here.

Comment thread .craft.yml
Keep the scheduler package order consistent across release metadata.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant